#coding=utf-8
# http://www.woshicver.com/
# 学习读取视频，显示视频和保存视频。
# 学习从相机捕捉并显示它。
# 学习以下功能:cv.VideoCapture()，cv.VideoWriter()

# 要捕获视频，你需要创建一个 VideoCapture 对象。
# 它的参数可以是设备索引或视频文件的名 称。

# 访问摄像头需有管理员权限，故应该在终端中以sudo来运行此code

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0) # 摄像头索引
if not cap.isOpened():
	print("Cannot open camera")
	exit()

print cap.get(cv.CAP_PROP_FRAME_WIDTH)   # 框架的宽度
print cap.get(cv.CAP_PROP_FRAME_HEIGHT)  # 框架的高度

ret = cap.set(cv.CAP_PROP_FRAME_WIDTH,320)  # 设置分辨率为 320x240
ret = cap.set(cv.CAP_PROP_FRAME_HEIGHT,240)

while True:
	# 逐帧捕获
	ret,frame = cap.read()
	# 如果正确读取帧，ret为True
	if not ret:
		print("Cannot receive frame, Exiting ...")
		break
	# 我们在框架上的操作到这里
	grayframe = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
	# 显示结果帧
	cv.imshow('frame',grayframe)
	if cv.waitKey(1)==ord('q'):
		break
# 完成所有操作后，释放捕获器
cap.release()
cv.destroyAllWindows()

# 可以使用 cap.get(propId) 方法访问该视频的某些功能，
# 其中propId是0到18之间的一个数 字
# 每个数字表示视频的属性(如果适用于该视频)，
# 并且可以显示完整的详细信息在这里看 到:cv::VideoCapture::get()。
# 其中一些值可以使用 cap.set(propId，value) 进行修改。
# value 是你想要的新值。







